/*
 * @Author: your name
 * @Date: 2021-12-17 21:53:30
 * @LastEditTime: 2021-12-18 16:54:12
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \homeStayMS\src\main\resources\static\js\utils\httpRequest.js
 */

// 导入axios 由于导入工具识别的原因，目前js的导入要写成require。
const axios = require('../../lib/axios/axios.min.js');

// 新建axios实例对象。
const request = axios.create({
  transformRequest: [
    function (data) {
      let ret = '';
      for (let it in data) {
        ret +=
          encodeURIComponent(it) +
          '=' +
          encodeURIComponent(data[it]) +
          '&';
      }
      return ret;
    },
  ],

  headers: {
    // 暂时不使用配置的值，现在使用默认的json格式类型的请求。
    // 'Content-Type': 'application/x-www-form-urlencoded',
    Accept: '*/*',
    withCredentials: true,
  },

  // 解决跨域浏览
  withCredentials: false,

  responseType: 'json',
});

// 定义需要导出的请求。
const httpRequest = {

  // get请求
  get(url, params) {
    const config = {
      method: 'get',
      url: url,
    };
    if (params) config.params = params;
    return request(config);
  },

  // post请求
  post(url, params) {
    const config = {
      method: 'post',
      url: url,
    };
    if (params) config.data = params;
    return request(config);
  },
};

// 将封装的请求导出。 由于导入工具的原因，js的导出需要写成 module.exports 且只能导出一个目标。
module.exports = httpRequest;